package com.arpa.oms.domain.vo;

import com.alibaba.fastjson.annotation.JSONField;
import com.arpa.oms.domain.enums.PayableAndReceivableStatusEnum;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * <p>
 * OMS付款单DTO
 * </p>
 *
 * @author LEO
 * @since 2020-12-04
 */
@Data
@ApiModel(value="OmsPayableVO对象", description="OMS付款单")
public class OmsPayableVO implements Serializable {


    @ApiModelProperty(value = "付款单号")
    private String code;

    @ApiModelProperty(value = "付款人标识")
    private String shipmentCode;

    @ApiModelProperty(value = "付款人名称")
    private String shipmentName;

    @ApiModelProperty(value = "收款人名称")
    private String supplierName;

    @ApiModelProperty(value = "制单日期、创建日期")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime gmtCreated;


    /**
     * 修改时间
     * 自动填充
     */
    @ApiModelProperty(value = "修改日期")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime gmtModified;

    /**
     * 创建人名称
     */
    @ApiModelProperty(value = "创建人")
    private String createdName;
    /**
     * 修改人名称
     */
    @ApiModelProperty(value = "修改人")
    private String modifiedName;

    @ApiModelProperty(value = "金额")
    private BigDecimal amountMoney;

    @ApiModelProperty(value = "状态：NEWS（新增）、PENDING（待审核）、PASS（审核通过）、NO_PASS（审核不通过）")
    private PayableAndReceivableStatusEnum status;


    @ApiModelProperty(value = "总数")
    private Long total;

    @ApiModelProperty(value = "减免金额")
    private BigDecimal amountReduce;

    @ApiModelProperty(value = "收款金额")
    private BigDecimal amountCollected;

    @ApiModelProperty(value = "审核人")
    private String verifyBy;

    @ApiModelProperty(value = "审核人姓名")
    private String verifyName;

    @ApiModelProperty(value = "审核时间")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime gmtVerify;
}
